/*引入axios*/
import axios from 'axios'
import {
	ElMessage
} from 'element-plus'

let baseUrl; // 不同环境下的地址
let debug; // 是否开启debug模式
//node中的环境变量process.env,也就是我们新增开发、生产的配置文件
console.log(process.env.NODE_ENV);
if (process.env.NODE_ENV === "development") {
	baseUrl = "/api";
	debug = true;
} else {
	baseUrl = 'http://localhost:50407' // 生产环境直连后端
	debug = false;
}
const request = axios.create({
	baseURL: baseUrl, // 基础路径,将统一的部分全部封装
	timeout: 4000,
	withCredentials: true, // 表示请求可以携带cookie
	headers: {
		"Content-Type": "application/x-www-form-urlencoded"
	}
})

// 解包返回response
request.interceptors.response.use((response) => {
	if (debug) {
		console.group('请求状态')
		console.log("请求方法：", response.config.method)
		console.log("请求地址", response.request.responseURL)
		if (response.config.method == "post") console.log("请求参数：", response.config.data)
		console.log("请求结果", response.data)
		console.groupEnd()
	}
	var res = response.data;
	res.headers = response.headers;
	res.code = response.data.code;

	// 获取code值
	switch (res.code) {
		case 0:
			if (debug) ElMessage.success({
				message: "调试信息：" + res.message,
				duration: 800,
			});
			break;
		case 500:
			if (debug) ElMessage.error({
				message: "调试信息：" + res.message,
				duration: 800,
			});
			break;
	}
	return res;
})

// 统一请求方法
export default {
	get(url, params) {
		return request.get(url, {
			params
		})
	},
	post(url, data) {
		return request.post(url, data)
	},
	postForm(url, data) { // 新增表单提交方法
		return request.post(url, data, {
			headers: {
				"Content-Type": "application/x-www-form-urlencoded"
			}
		})
	},
	postJson(url, data) {
		return request.post(url, data, {
			headers: {
				"Content-Type": "application/json"
			}
		})
	},
}